<?php
if (!defined('__COLA_DIR__')) exit;

/**
 * 文章阅读设置组件
 *
 * @author edikud
 * @package Widget
 * @copyright Copyright (c) 2019 Cola (http://www.mcooo.com)
 * @license GNU General Public License 2.0
 */
class Widget_Options_Reading extends Widget_Options_Permalink
{
    /**
     * 执行函数
     *
     * @access public
     * @return void
     */
    public function execute()
    {
		$this->user->pass('admin');
    }
    /**
     * 输出表单结构
     *
     * @access public
     * @return Form
     */
    public function form()
    {
        /** 构建表格 */
        $form = new Form($this->security->actionUrl('options-reading', false));

        /** 文章日期格式 */
        $postDateFormat = new Form_Text('postDateFormat', NULL, $this->options->postDateFormat,
        _t('文章日期格式'), _t('此格式用于指定显示在文章归档中的日期默认显示格式.') . '<br />'
            . _t('在某些主题中这个格式可能不会生效, 因为主题作者可以自定义日期格式.') . '<br />'
            . _t('请参考 <a href="http://www.php.net/manual/zh/function.date.php">PHP 日期格式写法</a>.'));
        $form->addInput($postDateFormat->addRule('xssCheck', _t('请不要在日期格式中使用特殊字符')));

        /** 文章列表数目 */
        $postsListSize = new Form_Text('postsListSize', NULL, $this->options->postsListSize,
        _t('文章列表数目'), _t('此数目用于指定显示在侧边栏中的文章列表数目.'));
        $form->addInput($postsListSize->addRule('isInteger', _t('请填入一个数字')));

        /** 每页文章数目 */
        $pageSize = new Form_Text('pageSize', NULL, $this->options->pageSize,
        _t('每页文章数目'), _t('此数目用于指定文章归档输出时每页显示的文章数目.'));
        $form->addInput($pageSize->addRule('isInteger', _t('请填入一个数字')));

        /** 提交按钮 */
        $submit = new Form_Submit('submit', NULL, _t('保存设置'));
        $form->set($submit);

		/** 插件接口 */
		//HOOK PLUG_Options_Reading_Form($form, $this);
		
        return $form;
    }

    /**
     * 执行更新动作
     *
     * @access public
     * @return void
     */
    public function updateReadingSettings()
    {
		$form = $this->form();
		
		/** 验证格式 */
        if ($message = $form->validate()) {
            $this->result->set(key($message), current($message));
        }

        $settings = $this->request->from(array_keys($form->getInputs()));

		/** 插件接口 */
		//HOOK $settings | PLUG_Options_Reading_Update($settings, $this);
		
        foreach ($settings as $name => $value) {
            $this->update($name, $value);
        }

		$this->select()
			->fetchAll(array($this, 'push'));
			
		/** 插件接口 */
		//HOOK PLUG_Options_Reading_Update_Success($this);
		
        $this->result->set(0, _t("设置已经保存"));
    }

    /**
     * 绑定动作
     *
     * @access public
     * @return void
     */
    public function action()
    {
        $this->security->protect();
        $this->on($this->request->isPost())->updateReadingSettings();
        $this->result->set(404, _t('请求的资源不存在'));
    }
}
